# @Time    :2025/4/7 20:29
"""
练习题 2：进程池的使用
创建一个进程池，大小为 3。
向进程池中提交 5 个任务，每个任务是计算一个数字的平方并打印出来。
等待所有任务执行完毕后，关闭进程池并打印 "Pool closed"。
"""
import multiprocessing


def square(num):
    result = num ** 2
    print(f"Process : Square of {num} is {result}")
    return result


if __name__ == "__main__":
    pool = multiprocessing.Pool(processes=3)
    numbers = [1, 2, 3, 4, 5]#向进程池中提交 5 个任务
    for num in numbers:
        pool.apply_async(square, args=(num,))  # func 是程序执行的任务
    pool.close()
    pool.join()
    print("Pool closed")
